<?

//--------------------------------------------
//-             PARÂMETROS                   -
//--------------------------------------------
$nome_do_BD = "radiomap_USP"; // nome do banco de dados onde serão gravados os dados dos caminhos
$pasta = "../coleta\ de\ dados/"; // pasta onde estão os dados coletados

$db = mysql_connect("localhost", "root");
mysql_select_db($nome_do_BD,$db);

$n_rep[1]=8;
$n_rep[2]=8;
$n_rep[3]=8;
$n_rep[4]=8;
$n_rep[5]=8;
$n_rep[6]=8;
$n_rep[7]=6;
$n_rep[8]=6;
$n_rep[9]=6;
$n_rep[10]=6;
$n_rep[11]=2;
$n_rep[12]=2;

//===============================================================
// Criando Tabela
mysql_query("Drop table if exists caminhos;");
mysql_query("Create table caminhos (
                            caminho int(11),
                            rep int(11),
                            t int(11),
                            px float default NULL,
                            py float default NULL,
                            celula int(11) default NULL,
                            px_estimado float default NULL,
                            py_estimado float default NULL,
                            celula_estimada int(11) default NULL,
                            pa0 int(11) default '0', 
                            pa1 int(11) default '0',
                            pa2 int(11) default '0',
                            pa3 int(11) default '0',
                            pa4 int(11) default '0',
                            pa5 int(11) default '0',
                            pa6 int(11) default '0',
                            pa7 int(11) default '0',
                            pa8 int(11) default '0',
                            pa9 int(11) default '0',
                            pa10 int(11) default '0',
                            pa11 int(11) default '0',
                            pa12 int(11) default '0',
                            pa13 int(11) default '0',
                            pa14 int(11) default '0',
                            pa15 int(11) default '0',
                            pa16 int(11) default '0',
                            pa17 int(11) default '0',
			    PRIMARY KEY (caminho, rep, t))");


for ($caminho=1;$caminho<=12;$caminho++){
$nrep=$n_rep[$caminho];

  $t = 0;
  $handle = @fopen("$pasta/caminho$caminho/CheckPoints", "r");
  if ($handle) {
   while (!feof($handle)) {
       $buffer = fgets($handle, 4096);
       $dados = explode("\t",$buffer);
       $pos[$t]["x"] = $dados[1]+0;
       $pos[$t]["y"] = $dados[2]+0;
       $t++;
       //echo ($pos[$t]["y"])."<br>";
   }
   fclose($handle);
  }




  for ($rep = 1; $rep <= $nrep; $rep++){


    $pa = 0;
    $amostras = -1;
    $handle = @fopen("$pasta/caminho$caminho/obs$rep.txt", "r");
    if ($handle) {

      while (!feof($handle)) {
         $buffer = fgets($handle, 4096);
         $dados = explode("\t",$buffer);
         if (count($dados) == 2){
            
	    $nr = mysql_query("Select id from PAs where ssid = '".$dados[0]."'");
	    if (mysql_num_rows($nr)!=0){
	      $pa = mysql_result($nr,0,"id");
	      $dados[1] = abs($dados[1]);
	      if ($dados[1]==1) $dados[1]=96;
	      mysql_query("Update caminhos set pa$pa = ".$dados[1]." where 
	                                                        caminho = $caminho AND
								rep = $rep AND
								t = $amostras;");
	    }
         } elseif (substr($dados[0],0,1)=="-") {
	   $amostras++;
	   mysql_query("Insert Into caminhos (caminho, rep, t) select $caminho, $rep, $amostras;");
	 }
      }
      fclose($handle);
    }

    $t = 0;
    $handle = @fopen("$pasta/caminho$caminho/times$rep.txt", "r");
    if ($handle) {
      while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        if ($buffer + 1 != 1){
          $time[$t] = $buffer + 1;
	  $t++;
        }
      }
      fclose($handle);
    }
  
    $tempo_total = $time[$t-1]-$time[0];
    $intervalo = $tempo_total/($amostras+0.5);

    echo "$intervalo\n";
  
    $sobra = $intervalo;
    $instante = 0;
    for ($n=0;$n<$t;$n++){
  
      $distancia = sqrt( power($pos[$n+1]["x"]-$pos[$n]["x"],2) + power($pos[$n+1]["y"]-$pos[$n]["y"],2) );
      $tempo = $time[$n+1]-$time[$n];
      $nobs = floor(($tempo+$sobra)/$intervalo);
      for ($i=1; $i<=$nobs;$i++){
        $d_parcial = $distancia * ($i*$intervalo - $sobra)/$tempo;
        if ($distancia != 0){
          $pos_obs[$instante]["x"] = $pos[$n]["x"] + $d_parcial* ($pos[$n+1]["x"]-$pos[$n]["x"])/$distancia;
          $pos_obs[$instante]["y"] = $pos[$n]["y"] + $d_parcial* ($pos[$n+1]["y"]-$pos[$n]["y"])/$distancia;
        } else {
      
          $pos_obs[$instante]["x"] = $pos[$n]["x"];
          $pos_obs[$instante]["y"] = $pos[$n]["y"];
        }
        mysql_query("Update caminhos set px = ".$pos_obs[$instante]["x"].", py = ".$pos_obs[$instante]["y"]." where 
	                                                        caminho = $caminho AND
								rep = $rep AND
								t = $instante;");
	$instante++;
      }
    
      $sobra = fmod( ($tempo+$sobra), $intervalo);
  
    }
    echo "feito caminho $caminho rep $rep\n";

  }
}



function power($a, $b){

  $retorno = 1;
  for ($i = 1; $i <= $b; $i++){
    $retorno *= $a;
  }
  return $retorno;
}



?> 
